Service Oriented Architecture (SOA) is a design for linking computational resources (principally, applications and data) on demand to achieve the desired results for service consumers (which can be end users or other services). OASIS (the Organization for the Advancement of Structured Information Standards) defines SOA as the following: a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations.
Automatic discovery of Web services is an important capability for the SOA. The first step in providing this capability is to markup Web services with metadata in a well-understood and consistent manner. The next step in providing automatic discovery is to advertise those service descriptions in a registry capable of fine-grained semantic matchmaking. Universal Description, Discovery and Integration (UDDI) is a Web-based distributed registry standard for the SOA. UDDI allows providers to publish descriptions of Web services they are offering and potential clients to query for Web services they require. It is one of the central elements of the interoperable framework and an OASIS standard with major backers including IBM and Microsoft. The specification is becoming widely accepted as a Web infrastructure standard and is already seeing widespread use in companies, government agencies, and the military.
Currently, the SOA relies on syntax based standards such as UDDI, which is an acronym for Universal Description, Discover, and Integration, a platform-independent, XML-based registry for businesses worldwide to list themselves on the Internet. UDDI is an open industry initiative, sponsored by OASIS, enabling businesses to publish service listings and discover each other and define how the services or software applications interact over the Internet.
In both computer science and information science, an ontology is a data model that represents a domain and is used to reason about the objects in that domain and the relations between them. Ontologies generally describe: 1) individuals—the basic or “ground level” objects; 2) classes—sets, collections, or types of objects; 3) attributes—properties, features, characteristics, or parameters that objects can have and share; and 4) relations—ways that objects can be related to one another. Conventional web-based ontologies are capable of storing and processing semantic service descriptions, i.e., service descriptions that include relations between data structures. However, UDDI is not capable of storing and processing semantic service descriptions.
The UDDI registry uses a system of categorization and identification restricted to predefined categorization information comprising syntactic concept data structures. For example, a vender may register its Web services in UDDI as a first group titled “reading materials” and a second group titled “writing materials.” Further, the system of categorization and identification of the UDDI registry permits further classification, wherein the group “reading materials” may be broken down into further sub-groups of syntactic concept data structures, e.g., a first sub-group titled “comic books” and a second sub-group titled “novels.”
Accordingly, an external client may query the UDDI registry for not only venders dealing with reading materials, but further for venders dealing specifically with comic books.
Although UDDI is widely used by various industry, government and university entities, its basic system of categorization and identification severely limits is usefulness. Specifically, the system of categorization and identification of the UDDI registry fails to permit relationship searches. Non-limiting examples of relationship searches include searching for verbals relating data structures or Boolean relations of data structures. As an example, the UDDI registry may have a data structure of “Jim” under the larger data structure “novels”. However, an external client searching the UDDI registry would not be able to determine if Jim is a “seller of” novels or a “buyer of” novels. Further, an external client searching the UDDI registry would not be able to search for Jim and “NOT” novels.
As service descriptions and requests become more complicated, automatic and effective matchmaking will require semantic metadata—data that is more rich than syntactic data in the sense that semantic metadata includes relationships between data structures. Ontologies are used in the semantic web as a form of knowledge representation about the world or some part of it.
The Web ontology language (OWL) was developed to specifically to address this problem. OWL is a machine understandable description language that is capable of describing resources in a manner much richer than traditional flat taxonomies and classification systems used by UDDI. OWL-S, or OWL for services, uses an ontology that provides a core set of constructs specifically for describing Web services. OWL-S allows for descriptions of Web service inputs, outputs, operations, and categorization using ontology concepts. OWL-S is designed for use by applications that need to process the content of information instead of just presenting information to humans. It facilitates greater machine interpretability of Web content than that supported by XML, RDF, and RDF Schema (RDF-S) by providing additional vocabulary along with a formal semantics. OWL allows for creation of ontologies that can be used to add semantic meaning to concepts in a particular domain of interest.
In contrast to the UDDI registry, described above, OWL uses a much more complex ontology that is not restricted to predefined categorization information. Specifically, the ontology of an OWL registry permits relationship searches. As an example, an OWL registry may define a property “sold by” and attach it from the concept “novels” to the concept “Jim.” As such, an external client searching such an OWL registry would be able to search for novels sold by Jim.
OWL-S adds the following capabilities in terms of service description markup and query.
OWL ontologies organize concepts into a class hierarchy. This allows for specification of service descriptions and requests in various levels of detail. Matchmakers that understand the class hierarchy will be able to match related concepts even if they are syntactically distinct.
OWL ontologies allow for refinement of concepts by attachment of properties. Using properties, composite concepts can be defined that do not exist in the original ontology. This allows for fine-grained definition of concepts in various levels of detail that can be used in service descriptions.
OWL ontologies allow for inference, which is the deduction process based on the relationships specified in the ontology. For example, a matchmaker can infer that a Service operated by Jim should match the query for a SellerService (which is a subclass of Service) operated by an Individual (which is a class that instance Jim belongs) even though this is not explicitly stated anywhere in the ontology.
OWL ontologies allow for dynamic discovery. Conventional syntax based SOA standards will allow for dynamic invocation of Web services. However, it can only take place for Web services that have already been discovered. Dynamic discovery, on the other hand, needs to deal with unknown services. It will require the use of semantic metadata that software agents can understand. WSDL cannot attach meaning to data. Thus, identical syntactic data can have entirely different semantic meanings. For example, the WSDL parameters specifications for a BookBuyer service and a BookSeller service can be identical. They can both have book name as input and price as output. However, the same price output refers to the buying price for BookBuyer and the selling price for the BookSeller. However, this information can be captured using semantic metadata that reference ontology concepts. Agents can then understand service descriptions without intervention from the human user thus enabling dynamic discovery as well as dynamic invocation of Web services.
It is clear that a registry that supports semantic annotation and matchmaking for Web services will produce much more refined search results. There are several possible approaches in developing such a semantic registry. The first approach is to completely abandon the UDDI specification and create a new registry standard specifically designed for OWL with new data model, API, and implementations. The second approach is to incorporate OWL into existing UDDI registry implementations without modification. This could involve not supporting certain aspects of OWL functionality, but it would seamlessly integrate into the existing services infrastructure. A third, hybrid approach, is to introduce small modifications to the UDDI specification for semantic support. The authors of the UDDI specification made a concerted effort not to limit the potential capability of the registry. They provide a framework for extensions so that registry implementations can provide capabilities not included in the original UDDI specification. While the UDDI specification supports extensions, this approach requires significant modification to the registry implementations and infrastructure. This would not be a simple matter.
OWL allows for semantic description of Web services based on shared ontologies. The ontologies are developed by industry in a particular domain or by standards bodies. Individual organizations then publish service descriptions based on classes established in the ontologies. This is analogous to the systems of categorization and identification envisioned by the current UDDI specification. However, the information contained in ontologies is much richer and their use is much more complex.
There are two major differences that make OWL incompatible with UDDI in its current state. First, ontologies are much richer than the flat categorization and identification systems used by UDDI. OWL supports properties that allow service descriptions to assert more specific facts about the members of classes or individuals. OWL-S service descriptions use properties to create composite concepts that contain multiple layers of annotations. For example, a service can publish itself as a BookSeller service that supports AES encryption and is operated by Jim. The UDDI data model is not capable of storing such descriptions involving composite concepts with multiple layers of annotations (see FIG. 2). Second, ontologies establish relationships among classes. Thus, matching should be done semantically. The class hierarchies involving subclass and equivalence class relationships should be taken into account by the query engine. For example, if a service publishes itself as a BookSellerService, it should be found by queries for SellerService because it is the parent class. UDDI, however, only supports syntax-based match that will not take into account the class hierarchy of the ontology.
Hence there are two main challenges in providing OWL support using UDDI registries. First, OWL descriptions should be correctly expressed in the UDDI data model without losing any details. Second, ontology awareness and semantic matching should be incorporated into the querying process. Facilitation of this will govern mapping.
What is needed is a system and method to enable the complex querying capabilities of an OWL registry in the restricted UDDI registry. More generally, what is needed is a system and method to enable the complex querying capabilities of a semantic data structure registry in a syntactic data structure registry.